A packet switching network is being used to transmit streaming media content, where video and audio data is transmitted from one media server to multiple receivers, and the receivers include computer terminals, set-top boxes, and the like. Packet loss occurs in the packet switching network, and in order to effectively ensure the quality of streaming media services, a hybrid (Hybrid) solution of combining forward error correction (Forward Error Correction, forward error correction) and ARQ (Automatic Retransmission Request, automatic retransmission request) is provided in the prior art to transmit streaming media content.
In the hybrid transmission solution of combining forward error correction and ARQ, a sender sends source data packets PKT1, PKT2, PKT3 . . . bearing media data, and meanwhile, buffers the media data packets in a retransmission module. Each streaming media data packet has a life cycle, so these media data packets only need to be buffered for a certain period of time. Forward error correction encoding is performed on all or part of the source data packets to generate forward error correction check data packets RPKT1, RPKT2 . . . of a certain ratio, and the check data packets are sent to the receiver along with the corresponding source data packets. When packet loss occurs after the media stream is transmitted over the network, the receiver attempts to restore the lost source data packets by performing forward error correction decoding operation. If the decoding succeeds, the restored source data packets are sent to an upper layer application. If the decoding fails, the forward error correction check data packets are discarded, and meanwhile, a retransmission request is sent to a repairing module to request for retransmitting the lost source data packets. After receiving the retransmission requests, the repairing module judges whether the retransmission requests are valid by estimating playing time of the source data packets requested to be retransmitted. If the retransmission requests are valid, the repairing module sends the requested source data packets to the receiver. After receiving the retransmitted source data packets, the receiver sends the packets to the upper layer application.
In the prior art, in the hybrid transmission solution of combining the forward error correction and ARQ, when the forward error correction decoding fails, the corresponding check data packets are totally discarded, and all of the lost source data packets are retransmitted, which causes huge waste of data, and meanwhile, the retransmitting all of the lost source data packets also occupies network resources and increases transmission bandwidth.